import { apiUploadRecord } from '@/api/upload.js'

// 录音管理器
const manager = uni.getRecorderManager()
// 音频对象
const innerAudioContext = uni.createInnerAudioContext()
// 录音的最大时间
const maxRecordDuration = 600 * 1000
// 当前订单id
let currentOrderId = ''
// 是否已经初始化
let isInited = false
// 是否手动停止录音
let stopOnHand = false

// 初始化监听
function initListeners () {
	if (isInited) return
	// console.log('初始化监听')
	isInited = true
	
	// 监听录音完成
	manager.onStop(res => {
		console.log('一段录音完成: ' + res.tempFilePath)
		innerAudioContext.src = res.tempFilePath
		// 上传音频
		apiUploadRecord(res.tempFilePath, currentOrderId)
		
		// 录音完成可能是时长到达限制 或 用户手动停止
		if (!stopOnHand) {
			// 若不是手动停止，则继续录音
			console.log('录音时长到达上限，新起一段录音')
			// 新启一段录音
			manager.start({
				duration: maxRecordDuration,
				hideTips: false
			})
		}
	})
}
// 初始化订单id
function setCurrentOrderId (id) {
	// 初始化订单id
	currentOrderId = id
}
// 开始录音
function startRecord() {
	console.log('点击开始录音')
	stopOnHand = false
	manager.start({
		duration: maxRecordDuration,
		hideTips: false
	})
}
// 结束录音
function endRecord() {
	console.log('点击停止录音')
	stopOnHand = true
	manager.stop()
}
export default {
	manager,
	innerAudioContext,
	startRecord,
	endRecord,
	initListeners,
	setCurrentOrderId
}